home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 2.iso / dist / fw_glimpse.idb / usr / freeware / src / glimpse-3.0 / libtemplate / include / util.h.z / util.h
C/C++ Source or Header  |  1997-09-09  |  6KB  |  137 lines

  1. /*
  2.  *  util.h - Common utilities for the Essence system
  3.  *
  4.  *  Darren Hardy, hardy@cs.colorado.edu, April 1994
  5.  *
  6.  *  $Id: util.h,v 1.12 1995/01/31 21:49:12 hardy Exp $
  7.  *
  8.  *  ----------------------------------------------------------------------
  9.  *  Copyright (c) 1994, 1995.  All rights reserved.
  10.  *  
  11.  *          Mic Bowman of Transarc Corporation.
  12.  *          Peter Danzig of the University of Southern California.
  13.  *          Darren R. Hardy of the University of Colorado at Boulder.
  14.  *          Udi Manber of the University of Arizona.
  15.  *          Michael F. Schwartz of the University of Colorado at Boulder. 
  16.  *  
  17.  *  This copyright notice applies to all code in Harvest other than
  18.  *  subsystems developed elsewhere, which contain other copyright notices
  19.  *  in their source text.
  20.  *  
  21.  *  The Harvest software was developed by the Internet Research Task
  22.  *  Force Research Group on Resource Discovery (IRTF-RD).  The Harvest
  23.  *  software may be used for academic, research, government, and internal
  24.  *  business purposes without charge.  If you wish to sell or distribute
  25.  *  the Harvest software to commercial clients or partners, you must
  26.  *  license the software.  See
  27.  *  http://harvest.cs.colorado.edu/harvest/copyright,licensing.html#licensing.
  28.  *  
  29.  *  The Harvest software is provided ``as is'', without express or
  30.  *  implied warranty, and with no support nor obligation to assist in its
  31.  *  use, correction, modification or enhancement.  We assume no liability
  32.  *  with respect to the infringement of copyrights, trade secrets, or any
  33.  *  patents, and are not responsible for consequential damages.  Proper
  34.  *  use of the Harvest software is entirely the responsibility of the user.
  35.  *  
  36.  *  For those who are using Harvest for non-commercial purposes, you may
  37.  *  make derivative works, subject to the following constraints:
  38.  *  
  39.  *  - You must include the above copyright notice and these accompanying 
  40.  *    paragraphs in all forms of derivative works, and any documentation 
  41.  *    and other materials related to such distribution and use acknowledge 
  42.  *    that the software was developed at the above institutions.
  43.  *  
  44.  *  - You must notify IRTF-RD regarding your distribution of the 
  45.  *    derivative work.
  46.  *  
  47.  *  - You must clearly notify users that your are distributing a modified 
  48.  *    version and not the original Harvest software.
  49.  *  
  50.  *  - Any derivative product is also subject to the restrictions of the 
  51.  *    copyright, including distribution and use limitations.
  52.  */
  53. #ifndef _UTIL_H_
  54. #define _UTIL_H_
  55.  
  56. #include <stdio.h>
  57. #include "config.h"
  58.  
  59. /* Buffer structure for buffer management routines */
  60. struct gbuf {            /* Growing and shrinking buffer */
  61.     char *data;        /* Data buffer */
  62.     int length;        /* Current length of data buffer */
  63.     int size;        /* Size allocated in the Data buffer */
  64.     int default_size;    /* Default size of the Data buffer */
  65. };
  66. typedef struct gbuf Buffer;    /* Growing buffer */
  67.  
  68. #define stradd_buffer(b,s)    add_buffer((b), (s), strlen(s))
  69.  
  70. #ifndef _PARAMS
  71. #if defined(__STDC__) || defined(__cplusplus) || defined(__STRICT_ANSI__)
  72. #define _PARAMS(ARGS) ARGS
  73. #else /* Traditional C */     
  74. #define _PARAMS(ARGS) ()      
  75. #endif /* __STDC__ */              
  76. #endif /* _PARAMS */   
  77.  
  78. /* from buffer.c    Buffer manipulation routines */
  79. Buffer *create_buffer _PARAMS((int));        /* New buffer */
  80. void grow_buffer _PARAMS((Buffer *));        /* Increase buffer size */
  81. void increase_buffer _PARAMS((Buffer *, int));    /* Increase buffer size */
  82. void shrink_buffer _PARAMS((Buffer *));        /* Reduce buffer size */
  83. void add_buffer _PARAMS((Buffer *, char *, int));/* Add data to a buffer */
  84. void free_buffer _PARAMS((Buffer *));        /* Clean up a buffer */
  85.  
  86. /* from host.c */
  87. char *getfullhostname _PARAMS(());        /* Fully qualified hostname */
  88. char *getmylogin _PARAMS(());            /* getlogin(3) clone */
  89. char *getrealhost _PARAMS((char *));        /* Real DNS hostname */
  90.  
  91. /* from log.c */
  92. void init_log _PARAMS((FILE *, FILE *));    /* Initialize log routines */
  93. void init_log3 _PARAMS((char *,FILE *,FILE *));    /* Initialize log routines */
  94. void log_errno _PARAMS((char *));        /* Same as perror(3) */
  95. void fatal_errno _PARAMS((char *));        /* Same as perror(3) & exit */
  96. #ifdef __STRICT_ANSI__
  97. #include <stdarg.h>
  98. void log _PARAMS((char *, ...));        /* Log a message */
  99. void errorlog _PARAMS((char *, ...));        /* Log an error message */
  100. void fatal _PARAMS((char *, ...));        /* Log error msg and exit */
  101. #else
  102. void log _PARAMS(());
  103. void errorlog _PARAMS(());
  104. void fatal _PARAMS(());
  105. #endif
  106.  
  107. #ifdef NO_STRDUP
  108. /* from strdup.c */
  109. char *strdup _PARAMS((char *));            /* Duplicate a string */
  110. #endif
  111.  
  112. /* from string.c */
  113. void parse_argv _PARAMS((char **, char *));    /* Parse a command string */
  114.  
  115. /* from system.c */
  116. int do_system _PARAMS((char *));        /* Wrapper for system(3) */
  117. int run_cmd _PARAMS((char *));            /* Simple system(3) */
  118. void do_system_lifetime _PARAMS((char *, int));    /* Limited system(3) */
  119. void close_all_fds _PARAMS((int));        /* Closes all fd's */
  120.  
  121. /* from xmalloc.c */
  122. void *xmalloc _PARAMS((size_t));        /* Wrapper for malloc(3) */
  123. void *xrealloc _PARAMS((void *, size_t));    /* Wrapper for realloc(3) */
  124. void xfree _PARAMS((void *));            /* Wrapper for free(3) */
  125.  
  126. /* from harvest.c */
  127. char *harvest_bindir _PARAMS((void));
  128. char *harvest_libdir _PARAMS((void));
  129. char *harvest_topdir _PARAMS((void));
  130. void harvest_add_path _PARAMS((char *));
  131. #define harvest_add_gatherer_path()     harvest_add_path("gatherer:")
  132. #define harvest_add_broker_path()     harvest_add_path("broker:")
  133. #define harvest_add_cache_path()     harvest_add_path("cache:")
  134. #define harvest_add_replicator_path()    harvest_add_path("replicator:")
  135.  
  136. #endif /* _UTIL_H_ */
  137.